package hu.bme.mit.androtext.data.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import hu.bme.mit.androtext.data.services.AndroDataGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalAndroDataParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'String'", "'float'", "'boolean'", "'int'", "'modelID'", "'entity'", "'{'", "'}'", "'extends'", "'property'", "':'", "'*'"
    };
    public static final int RULE_ID=4;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=10;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int RULE_SL_COMMENT=8;
    public static final int EOF=-1;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__19=19;
    public static final int RULE_STRING=6;
    public static final int T__16=16;
    public static final int T__15=15;
    public static final int T__18=18;
    public static final int T__17=17;
    public static final int T__12=12;
    public static final int T__11=11;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int RULE_INT=5;
    public static final int RULE_WS=9;

    // delegates
    // delegators


        public InternalAndroDataParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalAndroDataParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalAndroDataParser.tokenNames; }
    public String getGrammarFileName() { return "../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g"; }


     
     	private AndroDataGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(AndroDataGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start "entryRuleAndroDataRoot"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:60:1: entryRuleAndroDataRoot : ruleAndroDataRoot EOF ;
    public final void entryRuleAndroDataRoot() throws RecognitionException {
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:61:1: ( ruleAndroDataRoot EOF )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:62:1: ruleAndroDataRoot EOF
            {
             before(grammarAccess.getAndroDataRootRule()); 
            pushFollow(FOLLOW_ruleAndroDataRoot_in_entryRuleAndroDataRoot61);
            ruleAndroDataRoot();

            state._fsp--;

             after(grammarAccess.getAndroDataRootRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAndroDataRoot68); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAndroDataRoot"


    // $ANTLR start "ruleAndroDataRoot"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:69:1: ruleAndroDataRoot : ( ( rule__AndroDataRoot__Group__0 ) ) ;
    public final void ruleAndroDataRoot() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:73:2: ( ( ( rule__AndroDataRoot__Group__0 ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:74:1: ( ( rule__AndroDataRoot__Group__0 ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:74:1: ( ( rule__AndroDataRoot__Group__0 ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:75:1: ( rule__AndroDataRoot__Group__0 )
            {
             before(grammarAccess.getAndroDataRootAccess().getGroup()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:76:1: ( rule__AndroDataRoot__Group__0 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:76:2: rule__AndroDataRoot__Group__0
            {
            pushFollow(FOLLOW_rule__AndroDataRoot__Group__0_in_ruleAndroDataRoot94);
            rule__AndroDataRoot__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getAndroDataRootAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAndroDataRoot"


    // $ANTLR start "entryRuleType"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:88:1: entryRuleType : ruleType EOF ;
    public final void entryRuleType() throws RecognitionException {
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:89:1: ( ruleType EOF )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:90:1: ruleType EOF
            {
             before(grammarAccess.getTypeRule()); 
            pushFollow(FOLLOW_ruleType_in_entryRuleType121);
            ruleType();

            state._fsp--;

             after(grammarAccess.getTypeRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleType128); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleType"


    // $ANTLR start "ruleType"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:97:1: ruleType : ( ruleEntity ) ;
    public final void ruleType() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:101:2: ( ( ruleEntity ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:102:1: ( ruleEntity )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:102:1: ( ruleEntity )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:103:1: ruleEntity
            {
             before(grammarAccess.getTypeAccess().getEntityParserRuleCall()); 
            pushFollow(FOLLOW_ruleEntity_in_ruleType154);
            ruleEntity();

            state._fsp--;

             after(grammarAccess.getTypeAccess().getEntityParserRuleCall()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleType"


    // $ANTLR start "entryRuleEntity"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:116:1: entryRuleEntity : ruleEntity EOF ;
    public final void entryRuleEntity() throws RecognitionException {
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:117:1: ( ruleEntity EOF )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:118:1: ruleEntity EOF
            {
             before(grammarAccess.getEntityRule()); 
            pushFollow(FOLLOW_ruleEntity_in_entryRuleEntity180);
            ruleEntity();

            state._fsp--;

             after(grammarAccess.getEntityRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleEntity187); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleEntity"


    // $ANTLR start "ruleEntity"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:125:1: ruleEntity : ( ( rule__Entity__Group__0 ) ) ;
    public final void ruleEntity() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:129:2: ( ( ( rule__Entity__Group__0 ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:130:1: ( ( rule__Entity__Group__0 ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:130:1: ( ( rule__Entity__Group__0 ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:131:1: ( rule__Entity__Group__0 )
            {
             before(grammarAccess.getEntityAccess().getGroup()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:132:1: ( rule__Entity__Group__0 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:132:2: rule__Entity__Group__0
            {
            pushFollow(FOLLOW_rule__Entity__Group__0_in_ruleEntity213);
            rule__Entity__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getEntityAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleEntity"


    // $ANTLR start "entryRuleFeature"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:144:1: entryRuleFeature : ruleFeature EOF ;
    public final void entryRuleFeature() throws RecognitionException {
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:145:1: ( ruleFeature EOF )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:146:1: ruleFeature EOF
            {
             before(grammarAccess.getFeatureRule()); 
            pushFollow(FOLLOW_ruleFeature_in_entryRuleFeature240);
            ruleFeature();

            state._fsp--;

             after(grammarAccess.getFeatureRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleFeature247); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleFeature"


    // $ANTLR start "ruleFeature"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:153:1: ruleFeature : ( ( rule__Feature__Group__0 ) ) ;
    public final void ruleFeature() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:157:2: ( ( ( rule__Feature__Group__0 ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:158:1: ( ( rule__Feature__Group__0 ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:158:1: ( ( rule__Feature__Group__0 ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:159:1: ( rule__Feature__Group__0 )
            {
             before(grammarAccess.getFeatureAccess().getGroup()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:160:1: ( rule__Feature__Group__0 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:160:2: rule__Feature__Group__0
            {
            pushFollow(FOLLOW_rule__Feature__Group__0_in_ruleFeature273);
            rule__Feature__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getFeatureAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleFeature"


    // $ANTLR start "entryRuleTypeRef"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:172:1: entryRuleTypeRef : ruleTypeRef EOF ;
    public final void entryRuleTypeRef() throws RecognitionException {
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:173:1: ( ruleTypeRef EOF )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:174:1: ruleTypeRef EOF
            {
             before(grammarAccess.getTypeRefRule()); 
            pushFollow(FOLLOW_ruleTypeRef_in_entryRuleTypeRef300);
            ruleTypeRef();

            state._fsp--;

             after(grammarAccess.getTypeRefRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTypeRef307); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTypeRef"


    // $ANTLR start "ruleTypeRef"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:181:1: ruleTypeRef : ( ( rule__TypeRef__Alternatives ) ) ;
    public final void ruleTypeRef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:185:2: ( ( ( rule__TypeRef__Alternatives ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:186:1: ( ( rule__TypeRef__Alternatives ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:186:1: ( ( rule__TypeRef__Alternatives ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:187:1: ( rule__TypeRef__Alternatives )
            {
             before(grammarAccess.getTypeRefAccess().getAlternatives()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:188:1: ( rule__TypeRef__Alternatives )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:188:2: rule__TypeRef__Alternatives
            {
            pushFollow(FOLLOW_rule__TypeRef__Alternatives_in_ruleTypeRef333);
            rule__TypeRef__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getTypeRefAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTypeRef"


    // $ANTLR start "entryRuleEntityTypeRef"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:200:1: entryRuleEntityTypeRef : ruleEntityTypeRef EOF ;
    public final void entryRuleEntityTypeRef() throws RecognitionException {
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:201:1: ( ruleEntityTypeRef EOF )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:202:1: ruleEntityTypeRef EOF
            {
             before(grammarAccess.getEntityTypeRefRule()); 
            pushFollow(FOLLOW_ruleEntityTypeRef_in_entryRuleEntityTypeRef360);
            ruleEntityTypeRef();

            state._fsp--;

             after(grammarAccess.getEntityTypeRefRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleEntityTypeRef367); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleEntityTypeRef"


    // $ANTLR start "ruleEntityTypeRef"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:209:1: ruleEntityTypeRef : ( ( rule__EntityTypeRef__Group__0 ) ) ;
    public final void ruleEntityTypeRef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:213:2: ( ( ( rule__EntityTypeRef__Group__0 ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:214:1: ( ( rule__EntityTypeRef__Group__0 ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:214:1: ( ( rule__EntityTypeRef__Group__0 ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:215:1: ( rule__EntityTypeRef__Group__0 )
            {
             before(grammarAccess.getEntityTypeRefAccess().getGroup()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:216:1: ( rule__EntityTypeRef__Group__0 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:216:2: rule__EntityTypeRef__Group__0
            {
            pushFollow(FOLLOW_rule__EntityTypeRef__Group__0_in_ruleEntityTypeRef393);
            rule__EntityTypeRef__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getEntityTypeRefAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleEntityTypeRef"


    // $ANTLR start "entryRuleDataTypeRef"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:228:1: entryRuleDataTypeRef : ruleDataTypeRef EOF ;
    public final void entryRuleDataTypeRef() throws RecognitionException {
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:229:1: ( ruleDataTypeRef EOF )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:230:1: ruleDataTypeRef EOF
            {
             before(grammarAccess.getDataTypeRefRule()); 
            pushFollow(FOLLOW_ruleDataTypeRef_in_entryRuleDataTypeRef420);
            ruleDataTypeRef();

            state._fsp--;

             after(grammarAccess.getDataTypeRefRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDataTypeRef427); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleDataTypeRef"


    // $ANTLR start "ruleDataTypeRef"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:237:1: ruleDataTypeRef : ( ( rule__DataTypeRef__Group__0 ) ) ;
    public final void ruleDataTypeRef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:241:2: ( ( ( rule__DataTypeRef__Group__0 ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:242:1: ( ( rule__DataTypeRef__Group__0 ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:242:1: ( ( rule__DataTypeRef__Group__0 ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:243:1: ( rule__DataTypeRef__Group__0 )
            {
             before(grammarAccess.getDataTypeRefAccess().getGroup()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:244:1: ( rule__DataTypeRef__Group__0 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:244:2: rule__DataTypeRef__Group__0
            {
            pushFollow(FOLLOW_rule__DataTypeRef__Group__0_in_ruleDataTypeRef453);
            rule__DataTypeRef__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getDataTypeRefAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleDataTypeRef"


    // $ANTLR start "ruleDataTypes"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:257:1: ruleDataTypes : ( ( rule__DataTypes__Alternatives ) ) ;
    public final void ruleDataTypes() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:261:1: ( ( ( rule__DataTypes__Alternatives ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:262:1: ( ( rule__DataTypes__Alternatives ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:262:1: ( ( rule__DataTypes__Alternatives ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:263:1: ( rule__DataTypes__Alternatives )
            {
             before(grammarAccess.getDataTypesAccess().getAlternatives()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:264:1: ( rule__DataTypes__Alternatives )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:264:2: rule__DataTypes__Alternatives
            {
            pushFollow(FOLLOW_rule__DataTypes__Alternatives_in_ruleDataTypes490);
            rule__DataTypes__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getDataTypesAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleDataTypes"


    // $ANTLR start "rule__TypeRef__Alternatives"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:275:1: rule__TypeRef__Alternatives : ( ( ruleEntityTypeRef ) | ( ruleDataTypeRef ) );
    public final void rule__TypeRef__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:279:1: ( ( ruleEntityTypeRef ) | ( ruleDataTypeRef ) )
            int alt1=2;
            int LA1_0 = input.LA(1);

            if ( (LA1_0==RULE_ID) ) {
                alt1=1;
            }
            else if ( ((LA1_0>=11 && LA1_0<=14)) ) {
                alt1=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;
            }
            switch (alt1) {
                case 1 :
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:280:1: ( ruleEntityTypeRef )
                    {
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:280:1: ( ruleEntityTypeRef )
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:281:1: ruleEntityTypeRef
                    {
                     before(grammarAccess.getTypeRefAccess().getEntityTypeRefParserRuleCall_0()); 
                    pushFollow(FOLLOW_ruleEntityTypeRef_in_rule__TypeRef__Alternatives525);
                    ruleEntityTypeRef();

                    state._fsp--;

                     after(grammarAccess.getTypeRefAccess().getEntityTypeRefParserRuleCall_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:286:6: ( ruleDataTypeRef )
                    {
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:286:6: ( ruleDataTypeRef )
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:287:1: ruleDataTypeRef
                    {
                     before(grammarAccess.getTypeRefAccess().getDataTypeRefParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleDataTypeRef_in_rule__TypeRef__Alternatives542);
                    ruleDataTypeRef();

                    state._fsp--;

                     after(grammarAccess.getTypeRefAccess().getDataTypeRefParserRuleCall_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__Alternatives"


    // $ANTLR start "rule__DataTypes__Alternatives"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:297:1: rule__DataTypes__Alternatives : ( ( ( 'String' ) ) | ( ( 'float' ) ) | ( ( 'boolean' ) ) | ( ( 'int' ) ) );
    public final void rule__DataTypes__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:301:1: ( ( ( 'String' ) ) | ( ( 'float' ) ) | ( ( 'boolean' ) ) | ( ( 'int' ) ) )
            int alt2=4;
            switch ( input.LA(1) ) {
            case 11:
                {
                alt2=1;
                }
                break;
            case 12:
                {
                alt2=2;
                }
                break;
            case 13:
                {
                alt2=3;
                }
                break;
            case 14:
                {
                alt2=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }

            switch (alt2) {
                case 1 :
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:302:1: ( ( 'String' ) )
                    {
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:302:1: ( ( 'String' ) )
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:303:1: ( 'String' )
                    {
                     before(grammarAccess.getDataTypesAccess().getSTRINGEnumLiteralDeclaration_0()); 
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:304:1: ( 'String' )
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:304:3: 'String'
                    {
                    match(input,11,FOLLOW_11_in_rule__DataTypes__Alternatives575); 

                    }

                     after(grammarAccess.getDataTypesAccess().getSTRINGEnumLiteralDeclaration_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:309:6: ( ( 'float' ) )
                    {
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:309:6: ( ( 'float' ) )
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:310:1: ( 'float' )
                    {
                     before(grammarAccess.getDataTypesAccess().getFLOATEnumLiteralDeclaration_1()); 
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:311:1: ( 'float' )
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:311:3: 'float'
                    {
                    match(input,12,FOLLOW_12_in_rule__DataTypes__Alternatives596); 

                    }

                     after(grammarAccess.getDataTypesAccess().getFLOATEnumLiteralDeclaration_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:316:6: ( ( 'boolean' ) )
                    {
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:316:6: ( ( 'boolean' ) )
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:317:1: ( 'boolean' )
                    {
                     before(grammarAccess.getDataTypesAccess().getBOOLEANEnumLiteralDeclaration_2()); 
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:318:1: ( 'boolean' )
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:318:3: 'boolean'
                    {
                    match(input,13,FOLLOW_13_in_rule__DataTypes__Alternatives617); 

                    }

                     after(grammarAccess.getDataTypesAccess().getBOOLEANEnumLiteralDeclaration_2()); 

                    }


                    }
                    break;
                case 4 :
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:323:6: ( ( 'int' ) )
                    {
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:323:6: ( ( 'int' ) )
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:324:1: ( 'int' )
                    {
                     before(grammarAccess.getDataTypesAccess().getINTEnumLiteralDeclaration_3()); 
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:325:1: ( 'int' )
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:325:3: 'int'
                    {
                    match(input,14,FOLLOW_14_in_rule__DataTypes__Alternatives638); 

                    }

                     after(grammarAccess.getDataTypesAccess().getINTEnumLiteralDeclaration_3()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataTypes__Alternatives"


    // $ANTLR start "rule__AndroDataRoot__Group__0"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:337:1: rule__AndroDataRoot__Group__0 : rule__AndroDataRoot__Group__0__Impl rule__AndroDataRoot__Group__1 ;
    public final void rule__AndroDataRoot__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:341:1: ( rule__AndroDataRoot__Group__0__Impl rule__AndroDataRoot__Group__1 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:342:2: rule__AndroDataRoot__Group__0__Impl rule__AndroDataRoot__Group__1
            {
            pushFollow(FOLLOW_rule__AndroDataRoot__Group__0__Impl_in_rule__AndroDataRoot__Group__0671);
            rule__AndroDataRoot__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__AndroDataRoot__Group__1_in_rule__AndroDataRoot__Group__0674);
            rule__AndroDataRoot__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndroDataRoot__Group__0"


    // $ANTLR start "rule__AndroDataRoot__Group__0__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:349:1: rule__AndroDataRoot__Group__0__Impl : ( 'modelID' ) ;
    public final void rule__AndroDataRoot__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:353:1: ( ( 'modelID' ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:354:1: ( 'modelID' )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:354:1: ( 'modelID' )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:355:1: 'modelID'
            {
             before(grammarAccess.getAndroDataRootAccess().getModelIDKeyword_0()); 
            match(input,15,FOLLOW_15_in_rule__AndroDataRoot__Group__0__Impl702); 
             after(grammarAccess.getAndroDataRootAccess().getModelIDKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndroDataRoot__Group__0__Impl"


    // $ANTLR start "rule__AndroDataRoot__Group__1"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:368:1: rule__AndroDataRoot__Group__1 : rule__AndroDataRoot__Group__1__Impl rule__AndroDataRoot__Group__2 ;
    public final void rule__AndroDataRoot__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:372:1: ( rule__AndroDataRoot__Group__1__Impl rule__AndroDataRoot__Group__2 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:373:2: rule__AndroDataRoot__Group__1__Impl rule__AndroDataRoot__Group__2
            {
            pushFollow(FOLLOW_rule__AndroDataRoot__Group__1__Impl_in_rule__AndroDataRoot__Group__1733);
            rule__AndroDataRoot__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__AndroDataRoot__Group__2_in_rule__AndroDataRoot__Group__1736);
            rule__AndroDataRoot__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndroDataRoot__Group__1"


    // $ANTLR start "rule__AndroDataRoot__Group__1__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:380:1: rule__AndroDataRoot__Group__1__Impl : ( ( rule__AndroDataRoot__NameAssignment_1 ) ) ;
    public final void rule__AndroDataRoot__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:384:1: ( ( ( rule__AndroDataRoot__NameAssignment_1 ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:385:1: ( ( rule__AndroDataRoot__NameAssignment_1 ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:385:1: ( ( rule__AndroDataRoot__NameAssignment_1 ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:386:1: ( rule__AndroDataRoot__NameAssignment_1 )
            {
             before(grammarAccess.getAndroDataRootAccess().getNameAssignment_1()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:387:1: ( rule__AndroDataRoot__NameAssignment_1 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:387:2: rule__AndroDataRoot__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__AndroDataRoot__NameAssignment_1_in_rule__AndroDataRoot__Group__1__Impl763);
            rule__AndroDataRoot__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getAndroDataRootAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndroDataRoot__Group__1__Impl"


    // $ANTLR start "rule__AndroDataRoot__Group__2"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:397:1: rule__AndroDataRoot__Group__2 : rule__AndroDataRoot__Group__2__Impl ;
    public final void rule__AndroDataRoot__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:401:1: ( rule__AndroDataRoot__Group__2__Impl )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:402:2: rule__AndroDataRoot__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__AndroDataRoot__Group__2__Impl_in_rule__AndroDataRoot__Group__2793);
            rule__AndroDataRoot__Group__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndroDataRoot__Group__2"


    // $ANTLR start "rule__AndroDataRoot__Group__2__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:408:1: rule__AndroDataRoot__Group__2__Impl : ( ( rule__AndroDataRoot__TypesAssignment_2 )* ) ;
    public final void rule__AndroDataRoot__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:412:1: ( ( ( rule__AndroDataRoot__TypesAssignment_2 )* ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:413:1: ( ( rule__AndroDataRoot__TypesAssignment_2 )* )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:413:1: ( ( rule__AndroDataRoot__TypesAssignment_2 )* )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:414:1: ( rule__AndroDataRoot__TypesAssignment_2 )*
            {
             before(grammarAccess.getAndroDataRootAccess().getTypesAssignment_2()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:415:1: ( rule__AndroDataRoot__TypesAssignment_2 )*
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( (LA3_0==16) ) {
                    alt3=1;
                }


                switch (alt3) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:415:2: rule__AndroDataRoot__TypesAssignment_2
            	    {
            	    pushFollow(FOLLOW_rule__AndroDataRoot__TypesAssignment_2_in_rule__AndroDataRoot__Group__2__Impl820);
            	    rule__AndroDataRoot__TypesAssignment_2();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop3;
                }
            } while (true);

             after(grammarAccess.getAndroDataRootAccess().getTypesAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndroDataRoot__Group__2__Impl"


    // $ANTLR start "rule__Entity__Group__0"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:431:1: rule__Entity__Group__0 : rule__Entity__Group__0__Impl rule__Entity__Group__1 ;
    public final void rule__Entity__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:435:1: ( rule__Entity__Group__0__Impl rule__Entity__Group__1 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:436:2: rule__Entity__Group__0__Impl rule__Entity__Group__1
            {
            pushFollow(FOLLOW_rule__Entity__Group__0__Impl_in_rule__Entity__Group__0857);
            rule__Entity__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__1_in_rule__Entity__Group__0860);
            rule__Entity__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__0"


    // $ANTLR start "rule__Entity__Group__0__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:443:1: rule__Entity__Group__0__Impl : ( 'entity' ) ;
    public final void rule__Entity__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:447:1: ( ( 'entity' ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:448:1: ( 'entity' )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:448:1: ( 'entity' )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:449:1: 'entity'
            {
             before(grammarAccess.getEntityAccess().getEntityKeyword_0()); 
            match(input,16,FOLLOW_16_in_rule__Entity__Group__0__Impl888); 
             after(grammarAccess.getEntityAccess().getEntityKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__0__Impl"


    // $ANTLR start "rule__Entity__Group__1"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:462:1: rule__Entity__Group__1 : rule__Entity__Group__1__Impl rule__Entity__Group__2 ;
    public final void rule__Entity__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:466:1: ( rule__Entity__Group__1__Impl rule__Entity__Group__2 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:467:2: rule__Entity__Group__1__Impl rule__Entity__Group__2
            {
            pushFollow(FOLLOW_rule__Entity__Group__1__Impl_in_rule__Entity__Group__1919);
            rule__Entity__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__2_in_rule__Entity__Group__1922);
            rule__Entity__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__1"


    // $ANTLR start "rule__Entity__Group__1__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:474:1: rule__Entity__Group__1__Impl : ( ( rule__Entity__NameAssignment_1 ) ) ;
    public final void rule__Entity__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:478:1: ( ( ( rule__Entity__NameAssignment_1 ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:479:1: ( ( rule__Entity__NameAssignment_1 ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:479:1: ( ( rule__Entity__NameAssignment_1 ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:480:1: ( rule__Entity__NameAssignment_1 )
            {
             before(grammarAccess.getEntityAccess().getNameAssignment_1()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:481:1: ( rule__Entity__NameAssignment_1 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:481:2: rule__Entity__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Entity__NameAssignment_1_in_rule__Entity__Group__1__Impl949);
            rule__Entity__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getEntityAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__1__Impl"


    // $ANTLR start "rule__Entity__Group__2"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:491:1: rule__Entity__Group__2 : rule__Entity__Group__2__Impl rule__Entity__Group__3 ;
    public final void rule__Entity__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:495:1: ( rule__Entity__Group__2__Impl rule__Entity__Group__3 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:496:2: rule__Entity__Group__2__Impl rule__Entity__Group__3
            {
            pushFollow(FOLLOW_rule__Entity__Group__2__Impl_in_rule__Entity__Group__2979);
            rule__Entity__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__3_in_rule__Entity__Group__2982);
            rule__Entity__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__2"


    // $ANTLR start "rule__Entity__Group__2__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:503:1: rule__Entity__Group__2__Impl : ( ( rule__Entity__Group_2__0 )? ) ;
    public final void rule__Entity__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:507:1: ( ( ( rule__Entity__Group_2__0 )? ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:508:1: ( ( rule__Entity__Group_2__0 )? )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:508:1: ( ( rule__Entity__Group_2__0 )? )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:509:1: ( rule__Entity__Group_2__0 )?
            {
             before(grammarAccess.getEntityAccess().getGroup_2()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:510:1: ( rule__Entity__Group_2__0 )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==19) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:510:2: rule__Entity__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__Entity__Group_2__0_in_rule__Entity__Group__2__Impl1009);
                    rule__Entity__Group_2__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getEntityAccess().getGroup_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__2__Impl"


    // $ANTLR start "rule__Entity__Group__3"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:520:1: rule__Entity__Group__3 : rule__Entity__Group__3__Impl rule__Entity__Group__4 ;
    public final void rule__Entity__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:524:1: ( rule__Entity__Group__3__Impl rule__Entity__Group__4 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:525:2: rule__Entity__Group__3__Impl rule__Entity__Group__4
            {
            pushFollow(FOLLOW_rule__Entity__Group__3__Impl_in_rule__Entity__Group__31040);
            rule__Entity__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__4_in_rule__Entity__Group__31043);
            rule__Entity__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__3"


    // $ANTLR start "rule__Entity__Group__3__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:532:1: rule__Entity__Group__3__Impl : ( '{' ) ;
    public final void rule__Entity__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:536:1: ( ( '{' ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:537:1: ( '{' )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:537:1: ( '{' )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:538:1: '{'
            {
             before(grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_3()); 
            match(input,17,FOLLOW_17_in_rule__Entity__Group__3__Impl1071); 
             after(grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__3__Impl"


    // $ANTLR start "rule__Entity__Group__4"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:551:1: rule__Entity__Group__4 : rule__Entity__Group__4__Impl rule__Entity__Group__5 ;
    public final void rule__Entity__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:555:1: ( rule__Entity__Group__4__Impl rule__Entity__Group__5 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:556:2: rule__Entity__Group__4__Impl rule__Entity__Group__5
            {
            pushFollow(FOLLOW_rule__Entity__Group__4__Impl_in_rule__Entity__Group__41102);
            rule__Entity__Group__4__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__5_in_rule__Entity__Group__41105);
            rule__Entity__Group__5();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__4"


    // $ANTLR start "rule__Entity__Group__4__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:563:1: rule__Entity__Group__4__Impl : ( ( rule__Entity__FeaturesAssignment_4 )* ) ;
    public final void rule__Entity__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:567:1: ( ( ( rule__Entity__FeaturesAssignment_4 )* ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:568:1: ( ( rule__Entity__FeaturesAssignment_4 )* )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:568:1: ( ( rule__Entity__FeaturesAssignment_4 )* )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:569:1: ( rule__Entity__FeaturesAssignment_4 )*
            {
             before(grammarAccess.getEntityAccess().getFeaturesAssignment_4()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:570:1: ( rule__Entity__FeaturesAssignment_4 )*
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( (LA5_0==20) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:570:2: rule__Entity__FeaturesAssignment_4
            	    {
            	    pushFollow(FOLLOW_rule__Entity__FeaturesAssignment_4_in_rule__Entity__Group__4__Impl1132);
            	    rule__Entity__FeaturesAssignment_4();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop5;
                }
            } while (true);

             after(grammarAccess.getEntityAccess().getFeaturesAssignment_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__4__Impl"


    // $ANTLR start "rule__Entity__Group__5"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:580:1: rule__Entity__Group__5 : rule__Entity__Group__5__Impl ;
    public final void rule__Entity__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:584:1: ( rule__Entity__Group__5__Impl )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:585:2: rule__Entity__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__Entity__Group__5__Impl_in_rule__Entity__Group__51163);
            rule__Entity__Group__5__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__5"


    // $ANTLR start "rule__Entity__Group__5__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:591:1: rule__Entity__Group__5__Impl : ( '}' ) ;
    public final void rule__Entity__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:595:1: ( ( '}' ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:596:1: ( '}' )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:596:1: ( '}' )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:597:1: '}'
            {
             before(grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_5()); 
            match(input,18,FOLLOW_18_in_rule__Entity__Group__5__Impl1191); 
             after(grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__5__Impl"


    // $ANTLR start "rule__Entity__Group_2__0"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:622:1: rule__Entity__Group_2__0 : rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 ;
    public final void rule__Entity__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:626:1: ( rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:627:2: rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1
            {
            pushFollow(FOLLOW_rule__Entity__Group_2__0__Impl_in_rule__Entity__Group_2__01234);
            rule__Entity__Group_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group_2__1_in_rule__Entity__Group_2__01237);
            rule__Entity__Group_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group_2__0"


    // $ANTLR start "rule__Entity__Group_2__0__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:634:1: rule__Entity__Group_2__0__Impl : ( 'extends' ) ;
    public final void rule__Entity__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:638:1: ( ( 'extends' ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:639:1: ( 'extends' )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:639:1: ( 'extends' )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:640:1: 'extends'
            {
             before(grammarAccess.getEntityAccess().getExtendsKeyword_2_0()); 
            match(input,19,FOLLOW_19_in_rule__Entity__Group_2__0__Impl1265); 
             after(grammarAccess.getEntityAccess().getExtendsKeyword_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group_2__0__Impl"


    // $ANTLR start "rule__Entity__Group_2__1"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:653:1: rule__Entity__Group_2__1 : rule__Entity__Group_2__1__Impl ;
    public final void rule__Entity__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:657:1: ( rule__Entity__Group_2__1__Impl )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:658:2: rule__Entity__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Entity__Group_2__1__Impl_in_rule__Entity__Group_2__11296);
            rule__Entity__Group_2__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group_2__1"


    // $ANTLR start "rule__Entity__Group_2__1__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:664:1: rule__Entity__Group_2__1__Impl : ( ( rule__Entity__SuperTypeAssignment_2_1 ) ) ;
    public final void rule__Entity__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:668:1: ( ( ( rule__Entity__SuperTypeAssignment_2_1 ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:669:1: ( ( rule__Entity__SuperTypeAssignment_2_1 ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:669:1: ( ( rule__Entity__SuperTypeAssignment_2_1 ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:670:1: ( rule__Entity__SuperTypeAssignment_2_1 )
            {
             before(grammarAccess.getEntityAccess().getSuperTypeAssignment_2_1()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:671:1: ( rule__Entity__SuperTypeAssignment_2_1 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:671:2: rule__Entity__SuperTypeAssignment_2_1
            {
            pushFollow(FOLLOW_rule__Entity__SuperTypeAssignment_2_1_in_rule__Entity__Group_2__1__Impl1323);
            rule__Entity__SuperTypeAssignment_2_1();

            state._fsp--;


            }

             after(grammarAccess.getEntityAccess().getSuperTypeAssignment_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group_2__1__Impl"


    // $ANTLR start "rule__Feature__Group__0"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:685:1: rule__Feature__Group__0 : rule__Feature__Group__0__Impl rule__Feature__Group__1 ;
    public final void rule__Feature__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:689:1: ( rule__Feature__Group__0__Impl rule__Feature__Group__1 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:690:2: rule__Feature__Group__0__Impl rule__Feature__Group__1
            {
            pushFollow(FOLLOW_rule__Feature__Group__0__Impl_in_rule__Feature__Group__01357);
            rule__Feature__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Feature__Group__1_in_rule__Feature__Group__01360);
            rule__Feature__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Feature__Group__0"


    // $ANTLR start "rule__Feature__Group__0__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:697:1: rule__Feature__Group__0__Impl : ( 'property' ) ;
    public final void rule__Feature__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:701:1: ( ( 'property' ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:702:1: ( 'property' )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:702:1: ( 'property' )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:703:1: 'property'
            {
             before(grammarAccess.getFeatureAccess().getPropertyKeyword_0()); 
            match(input,20,FOLLOW_20_in_rule__Feature__Group__0__Impl1388); 
             after(grammarAccess.getFeatureAccess().getPropertyKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Feature__Group__0__Impl"


    // $ANTLR start "rule__Feature__Group__1"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:716:1: rule__Feature__Group__1 : rule__Feature__Group__1__Impl rule__Feature__Group__2 ;
    public final void rule__Feature__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:720:1: ( rule__Feature__Group__1__Impl rule__Feature__Group__2 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:721:2: rule__Feature__Group__1__Impl rule__Feature__Group__2
            {
            pushFollow(FOLLOW_rule__Feature__Group__1__Impl_in_rule__Feature__Group__11419);
            rule__Feature__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Feature__Group__2_in_rule__Feature__Group__11422);
            rule__Feature__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Feature__Group__1"


    // $ANTLR start "rule__Feature__Group__1__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:728:1: rule__Feature__Group__1__Impl : ( ( rule__Feature__NameAssignment_1 ) ) ;
    public final void rule__Feature__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:732:1: ( ( ( rule__Feature__NameAssignment_1 ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:733:1: ( ( rule__Feature__NameAssignment_1 ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:733:1: ( ( rule__Feature__NameAssignment_1 ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:734:1: ( rule__Feature__NameAssignment_1 )
            {
             before(grammarAccess.getFeatureAccess().getNameAssignment_1()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:735:1: ( rule__Feature__NameAssignment_1 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:735:2: rule__Feature__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Feature__NameAssignment_1_in_rule__Feature__Group__1__Impl1449);
            rule__Feature__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getFeatureAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Feature__Group__1__Impl"


    // $ANTLR start "rule__Feature__Group__2"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:745:1: rule__Feature__Group__2 : rule__Feature__Group__2__Impl rule__Feature__Group__3 ;
    public final void rule__Feature__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:749:1: ( rule__Feature__Group__2__Impl rule__Feature__Group__3 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:750:2: rule__Feature__Group__2__Impl rule__Feature__Group__3
            {
            pushFollow(FOLLOW_rule__Feature__Group__2__Impl_in_rule__Feature__Group__21479);
            rule__Feature__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Feature__Group__3_in_rule__Feature__Group__21482);
            rule__Feature__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Feature__Group__2"


    // $ANTLR start "rule__Feature__Group__2__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:757:1: rule__Feature__Group__2__Impl : ( ':' ) ;
    public final void rule__Feature__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:761:1: ( ( ':' ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:762:1: ( ':' )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:762:1: ( ':' )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:763:1: ':'
            {
             before(grammarAccess.getFeatureAccess().getColonKeyword_2()); 
            match(input,21,FOLLOW_21_in_rule__Feature__Group__2__Impl1510); 
             after(grammarAccess.getFeatureAccess().getColonKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Feature__Group__2__Impl"


    // $ANTLR start "rule__Feature__Group__3"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:776:1: rule__Feature__Group__3 : rule__Feature__Group__3__Impl ;
    public final void rule__Feature__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:780:1: ( rule__Feature__Group__3__Impl )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:781:2: rule__Feature__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__Feature__Group__3__Impl_in_rule__Feature__Group__31541);
            rule__Feature__Group__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Feature__Group__3"


    // $ANTLR start "rule__Feature__Group__3__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:787:1: rule__Feature__Group__3__Impl : ( ( rule__Feature__TypeAssignment_3 ) ) ;
    public final void rule__Feature__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:791:1: ( ( ( rule__Feature__TypeAssignment_3 ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:792:1: ( ( rule__Feature__TypeAssignment_3 ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:792:1: ( ( rule__Feature__TypeAssignment_3 ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:793:1: ( rule__Feature__TypeAssignment_3 )
            {
             before(grammarAccess.getFeatureAccess().getTypeAssignment_3()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:794:1: ( rule__Feature__TypeAssignment_3 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:794:2: rule__Feature__TypeAssignment_3
            {
            pushFollow(FOLLOW_rule__Feature__TypeAssignment_3_in_rule__Feature__Group__3__Impl1568);
            rule__Feature__TypeAssignment_3();

            state._fsp--;


            }

             after(grammarAccess.getFeatureAccess().getTypeAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Feature__Group__3__Impl"


    // $ANTLR start "rule__EntityTypeRef__Group__0"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:812:1: rule__EntityTypeRef__Group__0 : rule__EntityTypeRef__Group__0__Impl rule__EntityTypeRef__Group__1 ;
    public final void rule__EntityTypeRef__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:816:1: ( rule__EntityTypeRef__Group__0__Impl rule__EntityTypeRef__Group__1 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:817:2: rule__EntityTypeRef__Group__0__Impl rule__EntityTypeRef__Group__1
            {
            pushFollow(FOLLOW_rule__EntityTypeRef__Group__0__Impl_in_rule__EntityTypeRef__Group__01606);
            rule__EntityTypeRef__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__EntityTypeRef__Group__1_in_rule__EntityTypeRef__Group__01609);
            rule__EntityTypeRef__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EntityTypeRef__Group__0"


    // $ANTLR start "rule__EntityTypeRef__Group__0__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:824:1: rule__EntityTypeRef__Group__0__Impl : ( ( rule__EntityTypeRef__ReferencedAssignment_0 ) ) ;
    public final void rule__EntityTypeRef__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:828:1: ( ( ( rule__EntityTypeRef__ReferencedAssignment_0 ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:829:1: ( ( rule__EntityTypeRef__ReferencedAssignment_0 ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:829:1: ( ( rule__EntityTypeRef__ReferencedAssignment_0 ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:830:1: ( rule__EntityTypeRef__ReferencedAssignment_0 )
            {
             before(grammarAccess.getEntityTypeRefAccess().getReferencedAssignment_0()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:831:1: ( rule__EntityTypeRef__ReferencedAssignment_0 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:831:2: rule__EntityTypeRef__ReferencedAssignment_0
            {
            pushFollow(FOLLOW_rule__EntityTypeRef__ReferencedAssignment_0_in_rule__EntityTypeRef__Group__0__Impl1636);
            rule__EntityTypeRef__ReferencedAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getEntityTypeRefAccess().getReferencedAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EntityTypeRef__Group__0__Impl"


    // $ANTLR start "rule__EntityTypeRef__Group__1"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:841:1: rule__EntityTypeRef__Group__1 : rule__EntityTypeRef__Group__1__Impl ;
    public final void rule__EntityTypeRef__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:845:1: ( rule__EntityTypeRef__Group__1__Impl )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:846:2: rule__EntityTypeRef__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__EntityTypeRef__Group__1__Impl_in_rule__EntityTypeRef__Group__11666);
            rule__EntityTypeRef__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EntityTypeRef__Group__1"


    // $ANTLR start "rule__EntityTypeRef__Group__1__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:852:1: rule__EntityTypeRef__Group__1__Impl : ( ( rule__EntityTypeRef__MultiAssignment_1 )? ) ;
    public final void rule__EntityTypeRef__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:856:1: ( ( ( rule__EntityTypeRef__MultiAssignment_1 )? ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:857:1: ( ( rule__EntityTypeRef__MultiAssignment_1 )? )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:857:1: ( ( rule__EntityTypeRef__MultiAssignment_1 )? )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:858:1: ( rule__EntityTypeRef__MultiAssignment_1 )?
            {
             before(grammarAccess.getEntityTypeRefAccess().getMultiAssignment_1()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:859:1: ( rule__EntityTypeRef__MultiAssignment_1 )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==22) ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:859:2: rule__EntityTypeRef__MultiAssignment_1
                    {
                    pushFollow(FOLLOW_rule__EntityTypeRef__MultiAssignment_1_in_rule__EntityTypeRef__Group__1__Impl1693);
                    rule__EntityTypeRef__MultiAssignment_1();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getEntityTypeRefAccess().getMultiAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EntityTypeRef__Group__1__Impl"


    // $ANTLR start "rule__DataTypeRef__Group__0"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:873:1: rule__DataTypeRef__Group__0 : rule__DataTypeRef__Group__0__Impl rule__DataTypeRef__Group__1 ;
    public final void rule__DataTypeRef__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:877:1: ( rule__DataTypeRef__Group__0__Impl rule__DataTypeRef__Group__1 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:878:2: rule__DataTypeRef__Group__0__Impl rule__DataTypeRef__Group__1
            {
            pushFollow(FOLLOW_rule__DataTypeRef__Group__0__Impl_in_rule__DataTypeRef__Group__01728);
            rule__DataTypeRef__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__DataTypeRef__Group__1_in_rule__DataTypeRef__Group__01731);
            rule__DataTypeRef__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataTypeRef__Group__0"


    // $ANTLR start "rule__DataTypeRef__Group__0__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:885:1: rule__DataTypeRef__Group__0__Impl : ( ( rule__DataTypeRef__ReferencedDataTypeAssignment_0 ) ) ;
    public final void rule__DataTypeRef__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:889:1: ( ( ( rule__DataTypeRef__ReferencedDataTypeAssignment_0 ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:890:1: ( ( rule__DataTypeRef__ReferencedDataTypeAssignment_0 ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:890:1: ( ( rule__DataTypeRef__ReferencedDataTypeAssignment_0 ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:891:1: ( rule__DataTypeRef__ReferencedDataTypeAssignment_0 )
            {
             before(grammarAccess.getDataTypeRefAccess().getReferencedDataTypeAssignment_0()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:892:1: ( rule__DataTypeRef__ReferencedDataTypeAssignment_0 )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:892:2: rule__DataTypeRef__ReferencedDataTypeAssignment_0
            {
            pushFollow(FOLLOW_rule__DataTypeRef__ReferencedDataTypeAssignment_0_in_rule__DataTypeRef__Group__0__Impl1758);
            rule__DataTypeRef__ReferencedDataTypeAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getDataTypeRefAccess().getReferencedDataTypeAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataTypeRef__Group__0__Impl"


    // $ANTLR start "rule__DataTypeRef__Group__1"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:902:1: rule__DataTypeRef__Group__1 : rule__DataTypeRef__Group__1__Impl ;
    public final void rule__DataTypeRef__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:906:1: ( rule__DataTypeRef__Group__1__Impl )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:907:2: rule__DataTypeRef__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__DataTypeRef__Group__1__Impl_in_rule__DataTypeRef__Group__11788);
            rule__DataTypeRef__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataTypeRef__Group__1"


    // $ANTLR start "rule__DataTypeRef__Group__1__Impl"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:913:1: rule__DataTypeRef__Group__1__Impl : ( ( rule__DataTypeRef__MultiAssignment_1 )? ) ;
    public final void rule__DataTypeRef__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:917:1: ( ( ( rule__DataTypeRef__MultiAssignment_1 )? ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:918:1: ( ( rule__DataTypeRef__MultiAssignment_1 )? )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:918:1: ( ( rule__DataTypeRef__MultiAssignment_1 )? )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:919:1: ( rule__DataTypeRef__MultiAssignment_1 )?
            {
             before(grammarAccess.getDataTypeRefAccess().getMultiAssignment_1()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:920:1: ( rule__DataTypeRef__MultiAssignment_1 )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==22) ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:920:2: rule__DataTypeRef__MultiAssignment_1
                    {
                    pushFollow(FOLLOW_rule__DataTypeRef__MultiAssignment_1_in_rule__DataTypeRef__Group__1__Impl1815);
                    rule__DataTypeRef__MultiAssignment_1();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getDataTypeRefAccess().getMultiAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataTypeRef__Group__1__Impl"


    // $ANTLR start "rule__AndroDataRoot__NameAssignment_1"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:935:1: rule__AndroDataRoot__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__AndroDataRoot__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:939:1: ( ( RULE_ID ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:940:1: ( RULE_ID )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:940:1: ( RULE_ID )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:941:1: RULE_ID
            {
             before(grammarAccess.getAndroDataRootAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__AndroDataRoot__NameAssignment_11855); 
             after(grammarAccess.getAndroDataRootAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndroDataRoot__NameAssignment_1"


    // $ANTLR start "rule__AndroDataRoot__TypesAssignment_2"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:950:1: rule__AndroDataRoot__TypesAssignment_2 : ( ruleType ) ;
    public final void rule__AndroDataRoot__TypesAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:954:1: ( ( ruleType ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:955:1: ( ruleType )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:955:1: ( ruleType )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:956:1: ruleType
            {
             before(grammarAccess.getAndroDataRootAccess().getTypesTypeParserRuleCall_2_0()); 
            pushFollow(FOLLOW_ruleType_in_rule__AndroDataRoot__TypesAssignment_21886);
            ruleType();

            state._fsp--;

             after(grammarAccess.getAndroDataRootAccess().getTypesTypeParserRuleCall_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndroDataRoot__TypesAssignment_2"


    // $ANTLR start "rule__Entity__NameAssignment_1"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:965:1: rule__Entity__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Entity__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:969:1: ( ( RULE_ID ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:970:1: ( RULE_ID )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:970:1: ( RULE_ID )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:971:1: RULE_ID
            {
             before(grammarAccess.getEntityAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Entity__NameAssignment_11917); 
             after(grammarAccess.getEntityAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__NameAssignment_1"


    // $ANTLR start "rule__Entity__SuperTypeAssignment_2_1"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:980:1: rule__Entity__SuperTypeAssignment_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__Entity__SuperTypeAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:984:1: ( ( ( RULE_ID ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:985:1: ( ( RULE_ID ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:985:1: ( ( RULE_ID ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:986:1: ( RULE_ID )
            {
             before(grammarAccess.getEntityAccess().getSuperTypeEntityCrossReference_2_1_0()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:987:1: ( RULE_ID )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:988:1: RULE_ID
            {
             before(grammarAccess.getEntityAccess().getSuperTypeEntityIDTerminalRuleCall_2_1_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Entity__SuperTypeAssignment_2_11952); 
             after(grammarAccess.getEntityAccess().getSuperTypeEntityIDTerminalRuleCall_2_1_0_1()); 

            }

             after(grammarAccess.getEntityAccess().getSuperTypeEntityCrossReference_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__SuperTypeAssignment_2_1"


    // $ANTLR start "rule__Entity__FeaturesAssignment_4"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:999:1: rule__Entity__FeaturesAssignment_4 : ( ruleFeature ) ;
    public final void rule__Entity__FeaturesAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1003:1: ( ( ruleFeature ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1004:1: ( ruleFeature )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1004:1: ( ruleFeature )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1005:1: ruleFeature
            {
             before(grammarAccess.getEntityAccess().getFeaturesFeatureParserRuleCall_4_0()); 
            pushFollow(FOLLOW_ruleFeature_in_rule__Entity__FeaturesAssignment_41987);
            ruleFeature();

            state._fsp--;

             after(grammarAccess.getEntityAccess().getFeaturesFeatureParserRuleCall_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__FeaturesAssignment_4"


    // $ANTLR start "rule__Feature__NameAssignment_1"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1014:1: rule__Feature__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Feature__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1018:1: ( ( RULE_ID ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1019:1: ( RULE_ID )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1019:1: ( RULE_ID )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1020:1: RULE_ID
            {
             before(grammarAccess.getFeatureAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Feature__NameAssignment_12018); 
             after(grammarAccess.getFeatureAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Feature__NameAssignment_1"


    // $ANTLR start "rule__Feature__TypeAssignment_3"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1029:1: rule__Feature__TypeAssignment_3 : ( ruleTypeRef ) ;
    public final void rule__Feature__TypeAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1033:1: ( ( ruleTypeRef ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1034:1: ( ruleTypeRef )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1034:1: ( ruleTypeRef )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1035:1: ruleTypeRef
            {
             before(grammarAccess.getFeatureAccess().getTypeTypeRefParserRuleCall_3_0()); 
            pushFollow(FOLLOW_ruleTypeRef_in_rule__Feature__TypeAssignment_32049);
            ruleTypeRef();

            state._fsp--;

             after(grammarAccess.getFeatureAccess().getTypeTypeRefParserRuleCall_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Feature__TypeAssignment_3"


    // $ANTLR start "rule__EntityTypeRef__ReferencedAssignment_0"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1044:1: rule__EntityTypeRef__ReferencedAssignment_0 : ( ( RULE_ID ) ) ;
    public final void rule__EntityTypeRef__ReferencedAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1048:1: ( ( ( RULE_ID ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1049:1: ( ( RULE_ID ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1049:1: ( ( RULE_ID ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1050:1: ( RULE_ID )
            {
             before(grammarAccess.getEntityTypeRefAccess().getReferencedEntityCrossReference_0_0()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1051:1: ( RULE_ID )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1052:1: RULE_ID
            {
             before(grammarAccess.getEntityTypeRefAccess().getReferencedEntityIDTerminalRuleCall_0_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__EntityTypeRef__ReferencedAssignment_02084); 
             after(grammarAccess.getEntityTypeRefAccess().getReferencedEntityIDTerminalRuleCall_0_0_1()); 

            }

             after(grammarAccess.getEntityTypeRefAccess().getReferencedEntityCrossReference_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EntityTypeRef__ReferencedAssignment_0"


    // $ANTLR start "rule__EntityTypeRef__MultiAssignment_1"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1063:1: rule__EntityTypeRef__MultiAssignment_1 : ( ( '*' ) ) ;
    public final void rule__EntityTypeRef__MultiAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1067:1: ( ( ( '*' ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1068:1: ( ( '*' ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1068:1: ( ( '*' ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1069:1: ( '*' )
            {
             before(grammarAccess.getEntityTypeRefAccess().getMultiAsteriskKeyword_1_0()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1070:1: ( '*' )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1071:1: '*'
            {
             before(grammarAccess.getEntityTypeRefAccess().getMultiAsteriskKeyword_1_0()); 
            match(input,22,FOLLOW_22_in_rule__EntityTypeRef__MultiAssignment_12124); 
             after(grammarAccess.getEntityTypeRefAccess().getMultiAsteriskKeyword_1_0()); 

            }

             after(grammarAccess.getEntityTypeRefAccess().getMultiAsteriskKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EntityTypeRef__MultiAssignment_1"


    // $ANTLR start "rule__DataTypeRef__ReferencedDataTypeAssignment_0"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1086:1: rule__DataTypeRef__ReferencedDataTypeAssignment_0 : ( ruleDataTypes ) ;
    public final void rule__DataTypeRef__ReferencedDataTypeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1090:1: ( ( ruleDataTypes ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1091:1: ( ruleDataTypes )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1091:1: ( ruleDataTypes )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1092:1: ruleDataTypes
            {
             before(grammarAccess.getDataTypeRefAccess().getReferencedDataTypeDataTypesEnumRuleCall_0_0()); 
            pushFollow(FOLLOW_ruleDataTypes_in_rule__DataTypeRef__ReferencedDataTypeAssignment_02163);
            ruleDataTypes();

            state._fsp--;

             after(grammarAccess.getDataTypeRefAccess().getReferencedDataTypeDataTypesEnumRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataTypeRef__ReferencedDataTypeAssignment_0"


    // $ANTLR start "rule__DataTypeRef__MultiAssignment_1"
    // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1101:1: rule__DataTypeRef__MultiAssignment_1 : ( ( '*' ) ) ;
    public final void rule__DataTypeRef__MultiAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1105:1: ( ( ( '*' ) ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1106:1: ( ( '*' ) )
            {
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1106:1: ( ( '*' ) )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1107:1: ( '*' )
            {
             before(grammarAccess.getDataTypeRefAccess().getMultiAsteriskKeyword_1_0()); 
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1108:1: ( '*' )
            // ../hu.bme.mit.androtext.data.ui/src-gen/hu/bme/mit/androtext/data/ui/contentassist/antlr/internal/InternalAndroData.g:1109:1: '*'
            {
             before(grammarAccess.getDataTypeRefAccess().getMultiAsteriskKeyword_1_0()); 
            match(input,22,FOLLOW_22_in_rule__DataTypeRef__MultiAssignment_12199); 
             after(grammarAccess.getDataTypeRefAccess().getMultiAsteriskKeyword_1_0()); 

            }

             after(grammarAccess.getDataTypeRefAccess().getMultiAsteriskKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataTypeRef__MultiAssignment_1"

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleAndroDataRoot_in_entryRuleAndroDataRoot61 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAndroDataRoot68 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndroDataRoot__Group__0_in_ruleAndroDataRoot94 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleType_in_entryRuleType121 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleType128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEntity_in_ruleType154 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEntity_in_entryRuleEntity180 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleEntity187 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__0_in_ruleEntity213 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFeature_in_entryRuleFeature240 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleFeature247 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Feature__Group__0_in_ruleFeature273 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_entryRuleTypeRef300 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTypeRef307 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Alternatives_in_ruleTypeRef333 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEntityTypeRef_in_entryRuleEntityTypeRef360 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleEntityTypeRef367 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EntityTypeRef__Group__0_in_ruleEntityTypeRef393 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataTypeRef_in_entryRuleDataTypeRef420 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDataTypeRef427 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataTypeRef__Group__0_in_ruleDataTypeRef453 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataTypes__Alternatives_in_ruleDataTypes490 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEntityTypeRef_in_rule__TypeRef__Alternatives525 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataTypeRef_in_rule__TypeRef__Alternatives542 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_rule__DataTypes__Alternatives575 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__DataTypes__Alternatives596 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__DataTypes__Alternatives617 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_rule__DataTypes__Alternatives638 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndroDataRoot__Group__0__Impl_in_rule__AndroDataRoot__Group__0671 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__AndroDataRoot__Group__1_in_rule__AndroDataRoot__Group__0674 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__AndroDataRoot__Group__0__Impl702 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndroDataRoot__Group__1__Impl_in_rule__AndroDataRoot__Group__1733 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_rule__AndroDataRoot__Group__2_in_rule__AndroDataRoot__Group__1736 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndroDataRoot__NameAssignment_1_in_rule__AndroDataRoot__Group__1__Impl763 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndroDataRoot__Group__2__Impl_in_rule__AndroDataRoot__Group__2793 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndroDataRoot__TypesAssignment_2_in_rule__AndroDataRoot__Group__2__Impl820 = new BitSet(new long[]{0x0000000000010002L});
    public static final BitSet FOLLOW_rule__Entity__Group__0__Impl_in_rule__Entity__Group__0857 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Entity__Group__1_in_rule__Entity__Group__0860 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_rule__Entity__Group__0__Impl888 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__1__Impl_in_rule__Entity__Group__1919 = new BitSet(new long[]{0x00000000000A0000L});
    public static final BitSet FOLLOW_rule__Entity__Group__2_in_rule__Entity__Group__1922 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__NameAssignment_1_in_rule__Entity__Group__1__Impl949 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__2__Impl_in_rule__Entity__Group__2979 = new BitSet(new long[]{0x00000000000A0000L});
    public static final BitSet FOLLOW_rule__Entity__Group__3_in_rule__Entity__Group__2982 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__0_in_rule__Entity__Group__2__Impl1009 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__3__Impl_in_rule__Entity__Group__31040 = new BitSet(new long[]{0x0000000000140000L});
    public static final BitSet FOLLOW_rule__Entity__Group__4_in_rule__Entity__Group__31043 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__Entity__Group__3__Impl1071 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__4__Impl_in_rule__Entity__Group__41102 = new BitSet(new long[]{0x0000000000140000L});
    public static final BitSet FOLLOW_rule__Entity__Group__5_in_rule__Entity__Group__41105 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__FeaturesAssignment_4_in_rule__Entity__Group__4__Impl1132 = new BitSet(new long[]{0x0000000000100002L});
    public static final BitSet FOLLOW_rule__Entity__Group__5__Impl_in_rule__Entity__Group__51163 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__Entity__Group__5__Impl1191 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__0__Impl_in_rule__Entity__Group_2__01234 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__1_in_rule__Entity__Group_2__01237 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__Entity__Group_2__0__Impl1265 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__1__Impl_in_rule__Entity__Group_2__11296 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__SuperTypeAssignment_2_1_in_rule__Entity__Group_2__1__Impl1323 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Feature__Group__0__Impl_in_rule__Feature__Group__01357 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Feature__Group__1_in_rule__Feature__Group__01360 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__Feature__Group__0__Impl1388 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Feature__Group__1__Impl_in_rule__Feature__Group__11419 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_rule__Feature__Group__2_in_rule__Feature__Group__11422 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Feature__NameAssignment_1_in_rule__Feature__Group__1__Impl1449 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Feature__Group__2__Impl_in_rule__Feature__Group__21479 = new BitSet(new long[]{0x0000000000007810L});
    public static final BitSet FOLLOW_rule__Feature__Group__3_in_rule__Feature__Group__21482 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__Feature__Group__2__Impl1510 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Feature__Group__3__Impl_in_rule__Feature__Group__31541 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Feature__TypeAssignment_3_in_rule__Feature__Group__3__Impl1568 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EntityTypeRef__Group__0__Impl_in_rule__EntityTypeRef__Group__01606 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_rule__EntityTypeRef__Group__1_in_rule__EntityTypeRef__Group__01609 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EntityTypeRef__ReferencedAssignment_0_in_rule__EntityTypeRef__Group__0__Impl1636 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EntityTypeRef__Group__1__Impl_in_rule__EntityTypeRef__Group__11666 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EntityTypeRef__MultiAssignment_1_in_rule__EntityTypeRef__Group__1__Impl1693 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataTypeRef__Group__0__Impl_in_rule__DataTypeRef__Group__01728 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_rule__DataTypeRef__Group__1_in_rule__DataTypeRef__Group__01731 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataTypeRef__ReferencedDataTypeAssignment_0_in_rule__DataTypeRef__Group__0__Impl1758 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataTypeRef__Group__1__Impl_in_rule__DataTypeRef__Group__11788 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataTypeRef__MultiAssignment_1_in_rule__DataTypeRef__Group__1__Impl1815 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__AndroDataRoot__NameAssignment_11855 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleType_in_rule__AndroDataRoot__TypesAssignment_21886 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Entity__NameAssignment_11917 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Entity__SuperTypeAssignment_2_11952 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFeature_in_rule__Entity__FeaturesAssignment_41987 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Feature__NameAssignment_12018 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_rule__Feature__TypeAssignment_32049 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__EntityTypeRef__ReferencedAssignment_02084 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__EntityTypeRef__MultiAssignment_12124 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataTypes_in_rule__DataTypeRef__ReferencedDataTypeAssignment_02163 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__DataTypeRef__MultiAssignment_12199 = new BitSet(new long[]{0x0000000000000002L});

}